UI Framework,(User Interface Framework),是為開發者提供了預設的 HTML、CSS 和 JavaScript 元件,以快速構建界面,然而,當我在查詢的過程,很困惑這個算是 UI Framework 嗎?以下做個名詞解釋,在做歸納發現。
User Interface(UI)使用者介面
促進使用者和機器之間互動的任何東西。在電腦世界中,它可以是鍵盤、操縱桿、螢幕或程式等任何東西。就電腦軟體而言,它可以是命令列提示符、網頁、使用者輸入表單或任何應用程式的前端。-MDN
Framework 架構/框架
是一個通用術語,通常指的是其他事物建構於其之上的基本支撐結構。-Wiki
Software framework 軟體框架
軟體框架,提供通用功能,可以透過其他使用者編寫的程式碼選擇性地進行更改,從而提供特定於應用程式的軟體。提供建構和部署應用程式的標準方法,並且是一個通用的、可重複使用的軟體環境,更大的軟體平台的一部分提供特定的功能,以促進軟體應用程式、產品和解決方案的開發。-Wiki
框架(Framework)與庫(Library)之間的區別:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
</head>
<body>
<button class="btn btn-primary">Click Me</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.16/dist/tailwind.min.css">
</head>
<body>
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Click Me
</button>
</body>
</html>
<div id="app">
<button @click="count++">Click me</button>
<p>{{ count }}</p>
</div>
new Vue({
el: "#app",
data: {
count: 0,
},
});
在前端開發社群中,存在著兩種不同的取向:手刻派和套件派。手刻派更傾向於自己編寫 HTML、CSS 和 JavaScript,以完全掌握,保有彈性。然而,套件派則更傾向於使用 UI Framework,以節省時間並快速開發界面,每種取向都有其優點和缺點,取決於個人偏好和項目需求。
UI Framework 的主要作用之一是提高開發效率,提供了大量的現成元件,如按鈕、表格、導航欄等,節省開發者的時間和精力,此外,UI Framework 通常具有響應式設計,使應用程式在不同設備上保持一致的外觀和功能。
然而,過度依賴 UI Framework 也可能帶來些問題,可能變得過於依賴 UI Framework,而忽略了學習基本的前端技能。這可能導致在需要自定義設計或修復 UI Framework 的限制時感到🥲
此外,某些 UI Framework 可能會導致所有應用程式看起來都很相似,難以個性化設計。
適當使用 UI Framework,視為輔助工具,而不是取代基本技能的工具,建立堅實的 HTML、CSS 和 JavaScript 基礎,以便在需要時進行自定義和調整,並使用 UI Framework 來提高開發效率,尤其在團隊和緊湊的時間表下。
記得初次碰 Bootstrap,只取了三個元件來搭配使用,並使用它的網格系統與斷點,也看過夥伴都用了 Bootstrap,並花了許多心力改寫,讓樣式與設計稿一樣,沒有好不好,只有情況不同,如果團隊採用,可能有其原因,例如:馬上就有一套遵循的機制,不用討論老半天,人員調度也比較順。
因為我是 HTML5、CSS3 慢慢學上去的,在那之前沒碰過 UI Framework,然而,有些人是從 UI Framework 體驗前端的,又或者身邊後端朋友也是直接用,也曾看過有人發問,太早碰 UI Framework 是不是有害,因為太方便了就依賴了,到最後無法自己來?又或者說,套件是不是路上的朋友,取決我們如何看待,如果沒有基礎功而直接使用而變成依賴限制?還是有所基礎,搭配著使用,讓開發效率更好,還可以跟學習 UI Framework 的設計智慧呢?
MDN UI
Wiki Software framework
Wiki Library
Wiki JavaScript Library
Bootstrap
Tailwind CSS
Vue.js